package com.xpffly.design.iterator.common.service.impl;

import com.xpffly.design.iterator.common.service.Iterator;

import java.util.Vector;

/**
 * @Author: xpengfei
 * @Date: 2021/4/13 23:47
 * @Description：具体迭代器
 */
public class ConcreteIterator implements Iterator {

    private Vector vector = new Vector();
    /**
     * 定义当前游标
     */
    public int cursor = 0;

    public ConcreteIterator() {
    }

    public ConcreteIterator(Vector vector) {
        this.vector = vector;
    }

    /**
     * 遍历到下一个元素
     *
     * @return
     */
    public Object next() {
        return this.hasNext() ? this.vector.get(this.cursor) : null;
    }

    /**
     * 是否已经遍历到尾部
     *
     * @return false:已到达尾部   true:尚未到达尾部
     */
    public boolean hasNext() {
        return this.cursor == this.vector.size() ? false : true;
    }

    /**
     * 删除当前指向的元素
     * 真实项目中需要删除当前元素，同时将游标指向像一个元素
     *
     * @return
     */
    public boolean remove() {
        this.vector.remove(this.cursor);
        return true;
    }
}
